home *** CD-ROM | disk | FTP | other *** search
- ; Allgemeines Compiler-Script
- ; ---------------------------
- ; Defines, Setting usw. für CPU-Typen: 1-6 = 68k, 7 & 8 PPC / WOS
- ; $C = CPU/FPU für Compiler ($D=defines)
- ; Nicht gesetzte Werte werden ignoriert.
- ; Hier als Beispiel: 6x m68k-Config / 68000 Standardvorgabe
- ; 2x PPC, einmal PowerUP und einmal WarpOS
- ;
- ; Anmerkung: Pmm und alle Pmm-Tools werden ORIGINAL mit diesem Script auf
- ; vbcc 0.7 übersetzt. Ebenso Gateway-5, die gateway.library
- ; und auch meine interne Link-Lib.
- ; <-- (; = Kommentar)
- # <-- Für Make-Fan's (# = Kommentar)
- ;
- ; ACHTUNG! Von vbcc 0.6 nach 0.7 wird der Linker gewechselt! Statt PhxLnk
- ; wird ab dieser Version nur noch vlink benutzt! Die 'alten'
- ; Zeilen sind als Kommentar erhalten!
- ;
-
-
- ; Leerzeilen sind zulässig!
- ; -------------------------
-
- $C=-cpu=68000
- $D=-DCPU="68000" -DFPU="N/A"
- ;
- 2%$C=-cpu=68010
- 2%$D=-DCPU="68010" -DFPU="N/A"
- ;
- 3%$C=-cpu=68020 -fpu=68881
- 3%$D=-DCPU="68020" -DFPU="68881"
- ;
- 4%$C=-cpu=68030 -fpu=68882
- 4%$D=-DCPU="68030" -DFPU="68882"
- ;
- 5%$C=-cpu=68040 -fpu=68040
- 5%$D=-DCPU="68040" -DFPU="68040"
- ;
- 6%$C=-cpu=68060 -fpu=68060
- 6%$D=-DCPU="68060" -DFPU="68060"
- ;
- 7%$C=-cpu=ppc
- 7%$D=-DCPU="PPC" -DFPU="PowerUP"
- ;
- 8%$C=-cpu=wos
- 8%$D=-DCPU="PPC" -DFPU="WarpOS"
-
- $o=T:LinkerObjListe
- ;
- ; Zu 1%, 2% usw. siehe DOKU!
- ;
-
- ;
- ; Vorgabewerte, wenn für das Feld nichts gesetzt ist:
- ; ------------- VORSICHT! Optimizer auf 3 ist gefährlich (BETA) !!!
- ; Nach meiner Erfahrung läuft der Optimizer ab V0.6e
- ; Bei der Meldung: ">>> VAR <name> is used bevor defined"
- ; sofort auf -O=1 gehen. Sonst ist ein Absturz im Programm
- ; garantiert! Unter mindestens 16 MB freiem Speicher ist das auch
- ; nicht zu empfehlen! Anm. der Autorin
- ;
- ; $1, $2 ... $0 sind einfach Variablen, der Witz ist, das sie hier definiert
- ; werden, aber für jedes Projekt und jedes Programm einzeln
- ; übersteuert werden können.
- ;
- $1=-no-preprocessor
- 7%$1=-no-preprocessor -elf -no-regnames -no-multiple-ccs
- 8%$1=-no-preprocessor -poweropen -sc -no-multiple-ccs -use-lmw -peephole
-
- $2=-O=65535 -maxoptpasses=50
- ;
- ; Für Linker: CPU-Typ wird geprüft
- ;
- $3=vlib:startup.o
- 7%$3=vlibppc:startup.o
- 8%$3=-nostdlib -Lvlibwos: vlibwos:warpup.o
- ;
- ; vbcc 0.6:
- ;
- ;$3=SC SD ND vlib:startup.o
- ;7%$3=vlibppc:startup.o
- ;8%$3=-nostdlib -Lvlibwos: vlibwos:warpup.o
- ;
- $4=vlib:vc.lib vlib:amiga.lib vlib:extra.lib
- 7%$4=vlibppc:libvc.a vlibppc:libm.a vlibppc:libvc.a vlibppc:libamiga.a vlibppc:libextra.a
- 8%$4=vlibwos:vc.lib vlibwos:x.o TO
- ;
- ; Includes, vekürzt $I = Programm-Pfad (Quellen)
- ; --------- hier müssen die eigenen Standardpfade rein.
- ;
- $5=-Ivinclude: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
- 7%$5=-Ivincludeppc: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
- 8%$5=-Ivincludewos: -IInclude: -IProj:Library/Include -IProj:Library/Init -I$I
- ;
- ; Start des Pre-Prozessor's
- ;
- P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
- 7%P=vcpp $5 -D__STDC__=1 -+ $D $&.c $&.i
- 8%P=vcpp $5 -D__STDC__=1 -D__VBCC__=1 -D__PPC__=1 -+ $D $&.c $&.i
- ;
- ; Start des C-Compiler's
- ;
- C=ppcrun vbccppc://bin/vbccm68k_ppc $&.i -o=$&.a -quiet $C $1 $2
- 7%C=ppcrun vbccppc://bin/vbccppc_ppc $&.i -o=$&.a -quiet $C $1 $2
- 8%C=vbccppc $&.i -o=$&.a -quiet $C $1 $2"
- ;
- ; Scheduler
- ;
- ;7%S=vscppc -quiet $&.a $&.s
- 8%S=vscppc -quiet $&.a $&.s
- ;
- ; Assembler
- ;
- A=PhxAss noexe quiet opt NRQBTLPSM $&.a TO $&.o
- 7%A=pasm -R -F1 -O65536 $&.a -o $&.o
- 8%A=pasm -F2 -O65536 $&.s -o $&.o
- ;
- ; Linker (PhxLnk: @ übergibt eine Datei in der alle .o-Files gelistet sind!)
- ; (GNU-ld: < dito, aber über Standard-Input)
- ; (vlink: -F für File)
- ;
- ; Beim Start des Linker's mit Optionen, Link-Lib's und Objekten geht ziemlich
- ; schnell der Platz aus. Vor allem, wenn noch Pfadangaben hinzukommen. Das Tool
- ; vc vom vbcc unterscheidet wann eine Datei und wann eine Liste übergeben wird.
- ; Ich habe mich nur gefragt, wieso eigentlich? Wenn ich gleich die Datei ver-
- ; wende habe ich es einheitlich und es funktioniert in jedem Fall, ob ein, 10
- ; oder 100 Objekte. Alle Linker haben die Funktion ohnehin, also habe ich auf
- ; die Übergabe als Parameterliste verzichtet und übergebe immer die Datei.
- ; Der Dateiname ist per $o definiert.
- ;
- L=vlink -s -x -dn $3 -F$o $L $4 -o $$
- 7%L=vlink -belf32powerup -nostdlib -Lvlibppc: $3 -F$o $L $4 -lpowerup -o $$
- 8%L=vlink -bamigaehf -s -x $3 -F$o $L $4 -o $$
- ;
- ; vbcc 0.6:
- ;
- ;L=PhxLnk $3 @$o $L $4 TO $$
- ;7%L=ppc-amigaos-ld -r -L /vlibppc $3 <$o $L $4 TO $$
- ;8%L=vlink -bamigaehf -s -x $3 -F$o $L $4 TO $$
- ;
- ; CLI-Kommandos ausführen, wenn
- ;
- ; X0-X9 VOR dem ersten Compilerkommando (P, C, S, A) für Versionspflege
- ; oder Sicherungen.
- ;
- ; Y0-Y9 NACH dem Link (wenn erfolgreich), z.B. für Arbeitskopien, Update-
- ; systeme etc.
- ;
- ; R#: Programm starten, Cleanup oder alles andere was passieren soll.
- ; Wird eine Compilerstufe nicht eingesetzt entfallen auch die R-Zeilen!
- ;
- ; R0: VOR P - nur wenn auch P ausgeführt wird
- ; R1: NACH P - nur wenn auch P ausgeführt wird und ein Output-File vorliegt
- ; R2: VOR C - nur wenn auch C ausgeführt wird
- ; R3: NACH C - nur wenn auch C ausgeführt wird und ein Output-File vorliegt
- ; R4: VOR S - nur wenn auch S ausgeführt wird
- ; R5: NACH S - nur wenn auch S ausgeführt wird und ein Output-File vorliegt
- ; R6: VOR A - nur wenn auch A ausgeführt wird
- ; R7: NACH A - nur wenn auch A ausgeführt wird und ein Output-File vorliegt
- ; R8: VOR L - nur wenn auch L ausgeführt wird
- ; R9: NACH L - nur wenn auch L ausgeführt wird und ein Output-File vorliegt
- ;
- ; TIP: Wenn die Zeilen nicht reichen: 'Batches' oder 'Arexx' einsetzen!
- ;
- R7=Delete $&.i $&.a
- 8%R7=Delete $&.i $&.a $&.s
- R9=Delete $o
- ;
- ; Sicher ist sicher!
- ;
- X0=MakeDir >Nil: obj obj/000 obj/010 obj/020 obj/030 obj/040 obj/060 obj/ppc obj/wos
-